<?php
class InterfazComponent extends Component
{


		
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
 * Funcion para complementar numero en listados ejemplo 1 -> 01
 * Esta Funcion recibe como parametros:
 * $entero: numero a completar
 * $largo:  cantidad de digitos a visualizar
 * Devuelve el numero ingresado con ceros a la izquierda dependiendo del
 * largo deseado de la cadena de salida.
 *
 * @param   int $entero
 * @param   int $largo
 * @return  string numero_formateado_ceros_izquierda
 * Ejemplo:
 *     echo $this->Interfaz->item(12,4);
 *     su salida sera 0012
**/ 
function item($entero=0, $largo=2){
    // Limpiamos por si se encontraran errores de tipo en las variables
    $entero = (int)$entero;
    $largo = (int)$largo;
    $relleno = '';
    /* 
     * Determinamos la cantidad de caracteres utilizados por $entero
     * Si este valor es mayor o igual que $largo, devolvemos el $entero
     * De lo contrario, rellenamos con ceros a la izquierda del número
     */
    if (strlen($entero) < $largo) {
        $relleno = str_repeat('0', $largo - strlen($entero));
    }
    return $relleno . $entero;
}


//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
Funcion para convertir a formato de moneda
Esta Funcion recibe como parametros:
$numero: numero a convertir
$cant:  cantidad de decimales por defecto 2
$separadormiles: separador del formato en miles ejem: 1,263.00 - 1.263,00 por defecto "."
$separadordecimales: separador del formato en miles ejem: 1,263.00 - 1.263,00 por defecto ","
Ejemplo:
        echo $this->Interfaz->miles(123456,2,'.'); // devuelve  123.456,00
        echo $this->Interfaz->miles(123456,2,'',','); // devuelve  123456,00
        echo $this->Interfaz->miles(123456); // devuelve  123.456,00
        echo $this->Interfaz->miles(123456,2,',','.'); // devuelve  123,456.00

**/
function miles($numero,$cant=2,$s2='.',$s1=',')
{
	//if($separador=='.'){$s1=',';$s2='.';}
	//else{$s1='.';$s2=',';}
		return number_format($numero,$cant,$s1,$s2);
}



function busqueda($uses=array(),$model = null, $controler=null, $valor = null) {
	
if($controler!='vacio'){

if($valor=='' or $valor==null or $valor=='0')$valor='';

$this->$model = ClassRegistry::init($model);

$campos = $this->$model->query("SELECT * FROM information_schema.columns WHERE table_name = '" .$this->$model->useTable. "'");

$tipousuario=2;
if($tipousuario!=1){
$todo = '(';
}else{
$todo='';
}
	$modelos = $this->$model->relaccion;
	$camds='nombre'; 


	for($i=0; $i< count($modelos);$i++)
	{

	if(isset($this->$modelos[$i]->buscador) and !empty($this->$modelos[$i]->buscador))	$camds=$this->$modelos[$i]->buscador; 

      $todo.='"CAST(' . $modelos[$i] . '.'.$camds.'' . ' AS VARCHAR(500))"' . " ilike '%" . $valor . "%' OR ";
	}
	for ($i = 0; $i < count($campos); $i++) {

                

		if (in_array($campos[$i][0]['column_name'], $this->$model->busqueda)) {
                    $todo.='"CAST(' . $model . '.' . $campos[$i][0]['column_name'] . ' AS VARCHAR(500))"' . " ilike '%" . $valor . "%' OR ";
                }

	} 
		$tod = substr($todo, 0, -3);
		
		if($tipousuario!=1){
		$tod.=') AND "'.$model.'.estatus" not in' . " (0) ";
		}else{
		$tod.='';
		}


		

          	
		$condicion = array("or" => array($tod));
    $data = $this->$model->find('all', array('conditions' => $condicion, 'order' => "$model.id"/*, 'limit'=>"50"*/));


return $data;
}



}







































		function ajax($ruta=null,$update='div_error_evento',$array=null,$pre=null)
		{
				if($array!=null)
				{
						$valor="ajax('$ruta','$update','".implode(',', $array)."');";
				}
				else
				{ 
						$valor="ajax('$ruta','$update');";
				}
/*
	if(isset($pre[0]) && isset($pre[1]))
	{
			$alert="<script type=\"text/javascript\">

Ext.onReady(function(){
    Ext.get(\"".$pre[0]."\").on(\"click\", function(e){
        Ext.MessageBox.confirm(\"Csssonfirmar\", \"".$pre[1]."\", mifuncion);
    });function mifuncion(btn){

if(btn==\"yes\"){".$valor."
}


};

});
</script>


";

	}
	else
	{
		$alert=$valor;
	}
*/
				$alert=$valor;
				return $alert;
		}

		function id($id) 
		{
				$id = base64_decode(base64_decode(base64_decode(base64_decode(base64_decode($id)))));
				return $id; 
		}


    function mayuscula($t) 
		{
        return trim(addslashes(strtr(strtoupper($t), "àèìòùáéíóúçñäëïöü", "ÀÈÌÒÙÁÉÍÓÚÇÑÄËÏÖÜ")));
    }
  
    function data($data) 
		{
				$array=array();
				foreach ($data as $key => $value) 
				{
						if($key!='id')
							$array[$key]=$this->mayuscula($value);
						else
							$array[$key]=$value;
				}
				return $array;
    }

    function cedulaguion($cedula){
		return substr($cedula, 0,1)."-".substr($cedula, 1);
	}

	function cedulasinguion($cedula){
		return substr($cedula, 0,1).substr($cedula, 2);
	}

	function cedula_formateada($cedula){
			$ced=explode('-', $cedula);
			if(strlen($ced[1]) < 9) $ced[1]= str_pad($ced[1],9,'0',STR_PAD_LEFT);
			return $ced[0].$ced[1];
	}

	//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	/**
	Funcion para convertir a formato de Postgres un Formato Moneda
	Esta Funcion recibe como parametros:
	$numero: numero a convertir en formato (2.165,48) o (2165,48)

	Ejemplo:
		echo $this->Interfaz->miles_postgres(1.234,56); // devuelve  1234.56
	**/
	function miles_postgres($numero)
	{
		return str_replace(',', '.', str_replace('.', '', $numero));
	}

	//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
Funcion calcular_edad
  	Esta Funcion recibe como parametros:
	$fecha: fecha de nacimiento en formato Y-m-d
	Ejemplo:
      	$this->Interfaz->calcular_edad('1980-01-01');
**/
public function calcular_edad($fecha=null){
     $edad=0;
     if(!empty($fecha)){
        $edad= floor((time() - strtotime($fecha)) / 31556926);
     }
     return $edad;
}


function fecha($fecha=null){
	$fecha = (empty($fecha)) ? date('Y-m-d') : $fecha;
	$value=explode('-',$fecha);
 	if(isset($value[2]) && isset($value[1]) && isset($value[0]))
	{
 	 		$value=$value[2].'-'.$value[1].'-'.$value[0];
	}
	else{
		$value=explode('/',$fecha);
		$value=$value[2].'/'.$value[1].'/'.$value[0];
	}

return $value;

}

	public function limpiar_campo($campo){
		$nombre = str_replace('ÃÂ','Ñ', $campo);
		$nombre = str_replace('Ã','Ñ', $nombre);
		$nombre = str_replace('Ã','Ñ', $nombre);
		$nombre = str_replace('Ã±','Ñ', $nombre);
		$nombre = str_replace('Ã?','Ñ', $nombre);
		$nombre = str_replace('Ã','Á', $nombre);
		$nombre = str_replace('Ã','Á', $nombre);
		$nombre = str_replace('Ã','É', $nombre);
		$nombre = str_replace('Ã','É', $nombre);
		$nombre = str_replace('Ã©','É', $nombre);
		$nombre = str_replace('Ã','Í', $nombre);
		$nombre = str_replace('Ã','Ó', $nombre);
		$nombre = str_replace('Ã','Ó', $nombre);
		$nombre = str_replace('Ã','Ó', $nombre);
		$nombre = str_replace('Ã','Ó', $nombre);
		$nombre = str_replace('Ã³','Ó', $nombre);
		$nombre = str_replace('Ã','Ú', $nombre);
		$nombre = str_replace('Ã ','Ñ', $nombre);
		$nombre = utf8_encode($nombre);
		$nombre = strtoupper($nombre);
		return $nombre;
	}
}
